<header>
    虚拟模块
</header>
<p class="important">
    vite 和 rollup 共享
</p>
<p>
    虚拟模块是一种很实用的模式，使你可以对使用 ESM 语法的源文件传入一些编译时信息。
</p>
<pre tag="javascript">
export default function myPlugin() {
    const virtualModuleId = 'virtual:my-module'
    const resolvedVirtualModuleId = '\0' + virtualModuleId
    
    return {
        name: 'DemoPlugin',
        resolveId(id) {
            if (id === virtualModuleId)  return resolvedVirtualModuleId
        },
        load(id) {
            if (id === resolvedVirtualModuleId) return `export const msg = "from virtual module"`
        }
    }
}
</pre>
<p>
    这使得可以在 JavaScript 中引入这些模块：
</p>
<pre tag="javascript">
import { msg } from 'virtual:my-module'

// "from virtual module"
console.log(msg)
</pre>